package com.shanglida.android;

import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.text.SpannableString;
import android.text.Spanned;
import android.text.method.LinkMovementMethod;
import android.text.style.ForegroundColorSpan;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

import com.shanglida.R;
import com.shanglida.base.BaseActivity;
import com.shanglida.base.UserService;
import com.shanglida.main.MainActivity;

/**
 * @author liu
 * @deprecated 引导页
 * @version 1.0
 * @date 2014-02-26 修改
 * @copyright 尚礼达信息科技有限公司
 */
public class LoginActivity extends BaseActivity {

	// 忘记密码
	private TextView mForgin;
	// 输入框 用户名 用户密码
	private EditText mUser, mPasd;
	// 返回框
	private ImageView Reback;
	// 登录按钮
	private Button loginBtn;
	// CheckBox 记住密码 自动登录
	private CheckBox mRepasd, mAtlogin;
	// 保存用户信息 SharedPreferences
	private SharedPreferences msp;
	// 登录用户信息
	private String USER, PSWD;

	/*
	 * initView 初始化 initData 监听  addLink增加类似链接
	 */
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.login_activity);
		initView();
		initData();
		addLink();
		// 获得实例对象
		msp = this
				.getSharedPreferences("userinfo", Context.MODE_PRIVATE);
		//
		GetMsp();
	}

	// 设置监听
	protected void initData() {
		loginBtn.setOnClickListener(this);
		Reback.setOnClickListener(this);
		mForgin.setOnClickListener(this);
		mRepasd.setOnClickListener(this);
		mAtlogin.setOnClickListener(this);
	}

	// 初始化数据
	protected void initView() {
		mForgin = (TextView) findViewById(R.id.forget_passwd);
		mPasd = (EditText) findViewById(R.id.password_edit);
		mUser = (EditText) findViewById(R.id.account_layout);
		Reback = (ImageView) findViewById(R.id.login_back_btn);
		loginBtn = (Button) findViewById(R.id.login_login_btn);
		mRepasd = (CheckBox) findViewById(R.id.remember_psd);
		mAtlogin = (CheckBox) findViewById(R.id.anto_login);

	}

	@Override
	public void onClick(View v) {
		switch (v.getId()) {
		case R.id.login_login_btn:
			try {
				LoginService();
			} catch (Exception e) {
				e.printStackTrace();
			}
			break;
		// 监听记住密码多选框
		case R.id.remember_psd:
			ChangePs();
			break;
		// 监听自动登录
		case R.id.anto_login:
			AutoLog();
			break;
		// 退出images
		case R.id.login_back_btn:
			finish();
		default:
			break;
		}

	}

	/**
	 * AutoLog 监听自动登录
	 */
	private void AutoLog() {
		if (mAtlogin.isChecked()) {
			// 自动登录有选中
			msp.edit().putBoolean("ISCHECK", true).commit();
		} else {
			// 自动登录没有选中
			msp.edit().putBoolean("ISCHECK", false).commit();
		}

	}

	/**
	 * ChangePs 用于记住密码多选框
	 */
	private void ChangePs() {
		if (mRepasd.isChecked()) {
			// 记住密码有选中
			msp.edit().putBoolean("ISCHECK", true).commit();
		} else {
			// 记住密码没有选中
			msp.edit().putBoolean("ISCHECK", false).commit();
		}

	}

	/**
	 * LoginService 登录
	 */
	private void LoginService() {
		USER = mUser.getText().toString();
		PSWD = mPasd.getText().toString();
		// 判断是否为空
		isLoginNull();
		if (checkLogin(USER, PSWD)) {
			if (mRepasd.isChecked()) {
				// 记住用户名、密码
				Editor editor = msp.edit();
				editor.putString("USERNAME", USER);
				editor.putString("PASSWORD", PSWD);
				editor.commit();
			}
			// 跳转界面
			Intent Main = new Intent(LoginActivity.this, MainActivity.class);
			Main.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
			startActivity(Main);

		} else {
			Toast.makeText(this, "用户名或密码错误，请重新登录", 3000).show();
		}

	}

	// 判断是否为空
	private void isLoginNull() {
		if (USER.equals("")) {
			Toast.makeText(this, "用户名不为空！", 3000).show();
		}
		if (PSWD.equals("")) {
			Toast.makeText(this, "密码不为空！", 3000).show();
		}

	}

	/**
	 * @param username
	 * @param password
	 * @deprecated 登陆login 
	 * @date 2014-02-26 未增加dialog
	 * @author liu
	 * @return us
	 */
	private boolean checkLogin(String username, String password) {
		UserService us = new UserService(LoginActivity.this);
		boolean flag = us.login(USER, PSWD);
		try {
			if (flag) {
				Toast.makeText(LoginActivity.this, "登录成功", Toast.LENGTH_LONG)
						.show();
				// Intent Main = new Intent(LoginActivity.this,
				// MainActivity.class);
				// startActivity(Main);
			} else {
				Toast.makeText(LoginActivity.this, "登陆失败", Toast.LENGTH_LONG)
						.show();
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		return flag;
	}

	// 判断记住密码多选框的状态
	private void GetMsp() {
		if (msp.getBoolean("ISCHECK", false)) {
			// 设置默认是记录密码状态
			mRepasd.setChecked(true);
			mUser.setText(msp.getString("USERNAME", ""));
			mPasd.setText(msp.getString("PASSWORD", ""));
			// 判断自动登陆多选框状态
			if (msp.getBoolean("AUTO_ISCHECK", false)) {
				// 设置默认是自动登录状态
				mAtlogin.setChecked(true);
				// 跳转界面
				Intent Mains = new Intent(LoginActivity.this,
						MainActivity.class);
				startActivity(Mains);
			}

		}

	}
	
	/**
	 * addLink 增加类似链接
	 */
	private void addLink(){
		String sg = getString(R.string.for_get_pswd);
		SpannableString sb = new SpannableString(sg);
		sb.setSpan(new IntentSpan(new OnClickListener() {
			public void onClick(View view) {
				// 跳转到找回密码界面
//			startActivity(FindPasswordActivity.class);	
//				forgetwd();
			}
		}), 0, sb.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
		sb.setSpan(
				new ForegroundColorSpan(getResources().getColor(
						R.color.white)), 0, sb.length(),
				Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
		// 设置文本内容
		mForgin.setText(sb);
		mForgin.setMovementMethod(LinkMovementMethod.getInstance());
	}

}
